package sismed.negocio.controle;


import java.util.List;

import sismed.dados.hibernate.dao.DAOHibernateReceita;
import sismed.dao.IDAOReceitaMedica;
import sismed.negocio.modelo.Medico;
import sismed.negocio.modelo.Paciente;
import sismed.negocio.modelo.ReceitaMedica;


public class ControleOperacoesReceitaMedica 
{
	
	private IDAOReceitaMedica daoReceitaMedica;
	
	public ControleOperacoesReceitaMedica()
	{
		daoReceitaMedica = new DAOHibernateReceita();
	}
	
	public boolean addReceitaMedica(String registro, Paciente paciente, String descricao, String receituario, Medico medico, String data)
	{
				
		ReceitaMedica receitaMedica = new ReceitaMedica();
		
		receitaMedica.setRegistro(registro);
		receitaMedica.setPaciente(paciente);
		receitaMedica.setDescricao(descricao);
		receitaMedica.setReceituario(receituario);
		receitaMedica.setMedico(medico);
		receitaMedica.setData(data);
		
		if(validar(receitaMedica))					
			return daoReceitaMedica.cadastrar(receitaMedica);
		else
			return false;
	
	}
	
	public boolean validar(ReceitaMedica receita)
	{
		if( receita.getRegistro().isEmpty() || ( receita.getPaciente() == null ) || receita.getDescricao().isEmpty() || receita.getReceituario().isEmpty() || ( receita.getMedico() == null ) || receita.getData().isEmpty() )
			return false;
		
		return true;
	}
	
	public ReceitaMedica getReceitaMedica(int idReceitaMedica)
	{
		
		return daoReceitaMedica.getReceitaMedica(idReceitaMedica);
	}
	
	public List<ReceitaMedica> recuperarListaReceitaMedica(String idpaciente)
	{
		
		return daoReceitaMedica.recuperarLista(idpaciente);
	}
	
	public List<ReceitaMedica> recuperarListaReceitaMedicaPorMedico(String crmMedico)
	{
		
		return daoReceitaMedica.recuperarListaPorMedico(crmMedico);
	}
	
	public List<ReceitaMedica> recuperarListaReceitaMedicaPorPaciente(String idPaciente)
	{
		
		return daoReceitaMedica.recuperarListaPorPaciente(idPaciente);
	}

	public List<ReceitaMedica> recuperarListaReceitaMedica() {
		
		return daoReceitaMedica.recuperarLista();
	}
	
}
